#pragma once
#include "UnitManager.hpp"
#include "UnitEntityFwd.hpp"
#include "ImportExport.hpp"

namespace he
{
	class TerrainTile;

	//! Entity unit manager.
	class UnitEntityManager : boost::noncopyable
	{
		// Attributes
	private:
		//! Working path.
		boost::filesystem::path const &m_WrkPath;
		//! Unit manager.
		UnitManager m_UnitManager;
		//! Scene manager.
		Ogre::SceneManager &m_SceneManager;

		// Operations
	public:
		//! create afv entity.
		HE_ENGINE_API UnitEntityPtr_t create_afv(std::string const &Side, std::string const &UnitType, TerrainTile const &InitialPosition);

		// Construction/Destruction.
	public:
		HE_ENGINE_API UnitEntityManager(boost::filesystem::path const &WrkPath, Ogre::SceneManager &SceneManager);
	};
} /*he*/
